var runtime.trace

182 uses

	runtime (current package)
		mstats.go#L464: 		lock(&trace.lock)
		mstats.go#L502: 		unlock(&trace.lock)
		trace.go#L31: var trace struct {
		trace.go#L176: 	firstGen := traceNextGen(trace.lastNonZeroGen)
		trace.go#L179: 	trace.seqGC = 1
		trace.go#L182: 	trace.headerWritten = false
		trace.go#L183: 	trace.readerGen.Store(firstGen)
		trace.go#L184: 	trace.flushedGen.Store(0)
		trace.go#L238: 	trace.minPageHeapAddr = uint64(mheap_.pages.inUse.ranges[0].base.addr())
		trace.go#L259: 	trace.enabled = true
		trace.go#L262: 		trace.debugMalloc = debug.malloc
		trace.go#L263: 		trace.enabledWithAllocFree = true
		trace.go#L266: 	trace.gen.Store(firstGen)
		trace.go#L281: 	for trace.exitingSyscall.Load() != 0 {
		trace.go#L299: 	if trace.enabledWithAllocFree {
		trace.go#L343: 	gen := trace.gen.Load()
		trace.go#L399: 				ug.stackID = traceStack(0, gp, &trace.stackTab[gen%2])
		trace.go#L429: 	trace.lastNonZeroGen = gen
		trace.go#L436: 			lock(&trace.lock)
		trace.go#L437: 			trace.shutdown.Store(true)
		trace.go#L438: 			trace.gen.Store(0)
		trace.go#L439: 			unlock(&trace.lock)
		trace.go#L443: 			trace.enabled = false
		trace.go#L446: 		trace.gen.Store(traceNextGen(gen))
		trace.go#L533: 				lock(&trace.lock)
		trace.go#L540: 				unlock(&trace.lock)
		trace.go#L596: 	trace.stackTab[gen%2].dump(gen)
		trace.go#L597: 	trace.typeTab[gen%2].dump(gen)
		trace.go#L598: 	trace.stringTab[gen%2].reset(gen)
		trace.go#L602: 		lock(&trace.lock)
		trace.go#L603: 		trace.flushedGen.Store(gen)
		trace.go#L604: 		unlock(&trace.lock)
		trace.go#L633: 		if trace.enabledWithAllocFree {
		trace.go#L634: 			trace.enabledWithAllocFree = false
		trace.go#L635: 			debug.malloc = trace.debugMalloc
		trace.go#L657: 	semacquire(&trace.doneSema[gen%2])
		trace.go#L659: 		raceacquire(unsafe.Pointer(&trace.doneSema[gen%2]))
		trace.go#L665: 		lock(&trace.lock)
		trace.go#L666: 		if !trace.full[gen%2].empty() {
		trace.go#L670: 			if !trace.full[1-(gen%2)].empty() {
		trace.go#L673: 			if trace.reading != nil || trace.reader.Load() != nil {
		trace.go#L677: 			for trace.empty != nil {
		trace.go#L678: 				buf := trace.empty
		trace.go#L679: 				trace.empty = buf.link
		trace.go#L683: 			trace.headerWritten = false
		trace.go#L684: 			trace.shutdown.Store(false)
		trace.go#L686: 		unlock(&trace.lock)
		trace.go#L742: 		trace.markWorkerLabels[gen%2][i] = traceArg(trace.stringTab[gen%2].put(gen, label))
		trace.go#L745: 		trace.goBlockReasons[gen%2][i] = traceArg(trace.stringTab[gen%2].put(gen, str))
		trace.go#L748: 		trace.goStopReasons[gen%2][i] = traceArg(trace.stringTab[gen%2].put(gen, str))
		trace.go#L782: 			if !trace.reader.CompareAndSwapNoWB(nil, gp) {
		trace.go#L825: 	lock(&trace.lock)
		trace.go#L827: 	if trace.reader.Load() != nil {
		trace.go#L831: 		unlock(&trace.lock)
		trace.go#L836: 	if buf := trace.reading; buf != nil {
		trace.go#L837: 		buf.link = trace.empty
		trace.go#L838: 		trace.empty = buf
		trace.go#L839: 		trace.reading = nil
		trace.go#L842: 	if !trace.headerWritten {
		trace.go#L843: 		trace.headerWritten = true
		trace.go#L844: 		unlock(&trace.lock)
		trace.go#L850: 	if trace.readerGen.Load() == 0 {
		trace.go#L851: 		trace.readerGen.Store(1)
		trace.go#L855: 		assertLockHeld(&trace.lock)
		trace.go#L856: 		gen = trace.readerGen.Load()
		trace.go#L860: 		if !trace.full[gen%2].empty() {
		trace.go#L868: 		if trace.flushedGen.Load() == gen {
		trace.go#L870: 			if !trace.endOfGenerationWritten {
		trace.go#L871: 				trace.endOfGenerationWritten = true
		trace.go#L872: 				unlock(&trace.lock)
		trace.go#L877: 			trace.endOfGenerationWritten = false
		trace.go#L880: 			if trace.shutdown.Load() {
		trace.go#L881: 				unlock(&trace.lock)
		trace.go#L891: 					racerelease(unsafe.Pointer(&trace.doneSema[gen%2]))
		trace.go#L893: 				semrelease(&trace.doneSema[gen%2])
		trace.go#L904: 			trace.readerGen.Store(trace.gen.Load())
		trace.go#L905: 			unlock(&trace.lock)
		trace.go#L913: 				racerelease(unsafe.Pointer(&trace.doneSema[gen%2]))
		trace.go#L915: 			semrelease(&trace.doneSema[gen%2])
		trace.go#L918: 			lock(&trace.lock)
		trace.go#L930: 		trace.workAvailable.Store(false)
		trace.go#L931: 		unlock(&trace.lock)
		trace.go#L935: 	tbuf := trace.full[gen%2].pop()
		trace.go#L936: 	trace.reading = tbuf
		trace.go#L937: 	unlock(&trace.lock)
		trace.go#L949: 	if gp == nil || !trace.reader.CompareAndSwapNoWB(gp, nil) {
		trace.go#L971: 	if trace.flushedGen.Load() == trace.readerGen.Load() || trace.workAvailable.Load() {
		trace.go#L972: 		return trace.reader.Load()
		traceallocfree.go#L40: 	w.varint(uint64(trace.minPageHeapAddr))
		traceallocfree.go#L109: 	return traceArg(uint64(s.base())-trace.minPageHeapAddr) / pageSize
		traceallocfree.go#L133: 	return traceArg(uint64(addr)-trace.minPageHeapAddr) / gc.MinHeapAlign
		traceallocfree.go#L155: 	return traceArg(uint64(base)-trace.minPageHeapAddr) / fixedStack
		tracebuf.go#L145: 		lock(&trace.lock)
		tracebuf.go#L149: 		unlock(&trace.lock)
		tracebuf.go#L158: 		lock(&trace.lock)
		tracebuf.go#L162: 		if trace.empty != nil {
		tracebuf.go#L163: 			w.traceBuf = trace.empty
		tracebuf.go#L164: 			trace.empty = w.traceBuf.link
		tracebuf.go#L165: 			unlock(&trace.lock)
		tracebuf.go#L167: 			unlock(&trace.lock)
		tracebuf.go#L369: 	assertLockHeld(&trace.lock)
		tracebuf.go#L380: 	trace.full[gen%2].push(buf)
		tracebuf.go#L384: 	if !trace.workAvailable.Load() {
		tracebuf.go#L385: 		trace.workAvailable.Store(true)
		tracecpu.go#L20: 	trace.cpuLogRead[0] = newProfBuf(3, profBufWordCount, profBufTagCount)
		tracecpu.go#L21: 	trace.cpuLogRead[1] = newProfBuf(3, profBufWordCount, profBufTagCount)
		tracecpu.go#L29: 	trace.cpuLogWrite[0].Store(trace.cpuLogRead[0])
		tracecpu.go#L30: 	trace.cpuLogWrite[1].Store(trace.cpuLogRead[1])
		tracecpu.go#L42: 	trace.cpuSleep = newWakeableSleep()
		tracecpu.go#L56: 			trace.cpuSleep.sleep(100_000_000)
		tracecpu.go#L71: 	trace.cpuLogDone = done
		tracecpu.go#L89: 	trace.cpuLogWrite[0].Store(nil)
		tracecpu.go#L90: 	trace.cpuLogWrite[1].Store(nil)
		tracecpu.go#L91: 	trace.cpuLogRead[0].close()
		tracecpu.go#L92: 	trace.cpuLogRead[1].close()
		tracecpu.go#L93: 	trace.cpuSleep.wake()
		tracecpu.go#L96: 	<-trace.cpuLogDone
		tracecpu.go#L99: 	trace.cpuLogDone = nil
		tracecpu.go#L100: 	trace.cpuLogRead[0] = nil
		tracecpu.go#L101: 	trace.cpuLogRead[1] = nil
		tracecpu.go#L102: 	trace.cpuSleep.close()
		tracecpu.go#L121: 	data, tags, eof := trace.cpuLogRead[gen%2].read(profBufNonBlocking)
		tracecpu.go#L170: 		w := unsafeTraceWriter(gen, trace.cpuBuf[gen%2])
		tracecpu.go#L181: 		stackID := trace.stackTab[gen%2].put(pcBuf[:nstk])
		tracecpu.go#L191: 		trace.cpuBuf[gen%2] = w.traceBuf
		tracecpu.go#L200: 	if buf := trace.cpuBuf[gen%2]; buf != nil {
		tracecpu.go#L202: 			lock(&trace.lock)
		tracecpu.go#L204: 			unlock(&trace.lock)
		tracecpu.go#L205: 			trace.cpuBuf[gen%2] = nil
		tracecpu.go#L235: 	gen := trace.gen.Load()
		tracecpu.go#L264: 	for !trace.signalLock.CompareAndSwap(0, 1) {
		tracecpu.go#L269: 	if log := trace.cpuLogWrite[gen%2].Load(); log != nil {
		tracecpu.go#L276: 	trace.signalLock.Store(0)
		traceevent.go#L59: 	return traceArg(traceStack(skip, nil, &trace.stackTab[tl.gen%2]))
		traceevent.go#L69: 	return traceArg(trace.stackTab[tl.gen%2].put([]uintptr{
		traceevent.go#L79: 	return traceArg(trace.stringTab[tl.gen%2].put(tl.gen, s))
		traceevent.go#L86: 	return traceArg(trace.stringTab[tl.gen%2].emit(tl.gen, s))
		traceevent.go#L91: 	return traceArg(trace.typeTab[tl.gen%2].put(typ))
		traceruntime.go#L59: 	lockInit(&trace.stringTab[0].lock, lockRankTraceStrings)
		traceruntime.go#L60: 	lockInit(&trace.stringTab[0].tab.mem.lock, lockRankTraceStrings)
		traceruntime.go#L61: 	lockInit(&trace.stringTab[1].lock, lockRankTraceStrings)
		traceruntime.go#L62: 	lockInit(&trace.stringTab[1].tab.mem.lock, lockRankTraceStrings)
		traceruntime.go#L63: 	lockInit(&trace.stackTab[0].tab.mem.lock, lockRankTraceStackTab)
		traceruntime.go#L64: 	lockInit(&trace.stackTab[1].tab.mem.lock, lockRankTraceStackTab)
		traceruntime.go#L65: 	lockInit(&trace.typeTab[0].tab.mem.lock, lockRankTraceTypeTab)
		traceruntime.go#L66: 	lockInit(&trace.typeTab[1].tab.mem.lock, lockRankTraceTypeTab)
		traceruntime.go#L67: 	lockInit(&trace.lock, lockRankTrace)
		traceruntime.go#L77: 	lockWithRankMayAcquire(&trace.lock, getLockRank(&trace.lock))
		traceruntime.go#L151: 	return trace.enabled
		traceruntime.go#L159: 	return trace.enabledWithAllocFree
		traceruntime.go#L164: 	return trace.shutdown.Load()
		traceruntime.go#L215: 		return traceLocker{mp, trace.gen.Load()}
		traceruntime.go#L237: 	gen := trace.gen.Load()
		traceruntime.go#L277: 	trace.exitingSyscall.Add(1)
		traceruntime.go#L282: 	trace.exitingSyscall.Add(-1)
		traceruntime.go#L313: 	tl.eventWriter(tracev2.GoRunning, tracev2.ProcRunning).event(tracev2.EvGCActive, traceArg(trace.seqGC))
		traceruntime.go#L316: 	trace.seqGC++
		traceruntime.go#L324: 	tl.eventWriter(tracev2.GoRunning, tracev2.ProcRunning).event(tracev2.EvGCBegin, traceArg(trace.seqGC), tl.stack(3))
		traceruntime.go#L327: 	trace.seqGC++
		traceruntime.go#L335: 	tl.eventWriter(tracev2.GoRunning, tracev2.ProcRunning).event(tracev2.EvGCEnd, traceArg(trace.seqGC))
		traceruntime.go#L338: 	trace.seqGC++
		traceruntime.go#L437: 		w.event(tracev2.EvGoLabel, trace.markWorkerLabels[tl.gen%2][pp.ptr().gcMarkWorkerMode])
		traceruntime.go#L460: 	tl.eventWriter(tracev2.GoRunning, tracev2.ProcRunning).event(tracev2.EvGoStop, traceArg(trace.goStopReasons[tl.gen%2][reason]), tl.stack(0))
		traceruntime.go#L468: 	tl.eventWriter(tracev2.GoRunning, tracev2.ProcRunning).event(tracev2.EvGoBlock, traceArg(trace.goBlockReasons[tl.gen%2][reason]), tl.stack(skip))
		traceruntime.go#L699: 		lock(&trace.lock)
		traceruntime.go#L710: 		unlock(&trace.lock)
		tracestack.go#L244: 	frame.funcID = trace.stringTab[gen%2].put(gen, fn)
		tracestack.go#L250: 	frame.fileID = trace.stringTab[gen%2].put(gen, file)
		tracestring.go#L88: 			lock(&trace.lock)
		tracestring.go#L90: 			unlock(&trace.lock)
		tracetime.go#L108: 		lock(&trace.lock)
		tracetime.go#L110: 		unlock(&trace.lock)